Jeremy Bícha [Fri, 1 Sep 2023 23:12:07 +0000 (19:12 -0400)]
Ignore the same reftest failures for riscv64 as for mips64el
mips64el uses softpipe on the buildds because we force it to (because
llvmpipe is broken there), but riscv64 uses softpipe even when not
forced to, because llvmpipe doesn't exist on riscv64 yet.
It's expected that gtk_widget_get_root() will return NULL if the widget
tree does not contain a root widget. I don't know what that means or why
it happens, but it's true in gnome-control-center's network panel when
displaying the OpenVPN configuration dialog. We need to handle it.
Simon McVittie [Tue, 22 Aug 2023 09:49:36 +0000 (10:49 +0100)]
tests: Accept slightly different numeric results
FLT_EPSILON is the distance between 1.0 and the next distinct floating
point number, and doesn't necessarily have anything to do with the
precision we can expect from a series of floating-point calculations.
Experimentally, 1e-6 is achievable, even on platforms with unusual
floating point implementations like i387.
Resolves: https://gitlab.gnome.org/GNOME/gtk/-/issues/6051
Bug-Debian: https://bugs.debian.org/1050076 Signed-off-by: Simon McVittie <smcv@debian.org>
Linking on Windows can easily run out of memory, and limiting it
to a single link operation (i.e. disabling parallelization) should
be enough to avoid this problem.
G.Willems [Thu, 17 Aug 2023 20:26:00 +0000 (22:26 +0200)]
gtktexthistory: restore 'modified' flag on redo
When redoing a history entry, its `is_modified` flag is not
reflected to the history state tracker. So GtkTextBuffers may
expose a modified=FALSE status, despite a change was actually
applied to the buffer.
For the undo case, an `is_modified_set` flag was set on the last
entry of the undo queue when a change of the modified state of
the history is requested. This commit does the same on the first
entry of the redo queue.
Daniel Boles [Thu, 17 Aug 2023 09:52:21 +0000 (10:52 +0100)]
PopoverMenu: Make :flags a property for use in UI…
…files, or other cases other than calling new_from_model_full(), which
generally makes it far easier to experiment with the effect of flags,
including by changing the value of the property in the Inspector.
Daniel Boles [Wed, 16 Aug 2023 16:11:45 +0000 (17:11 +0100)]
Popover: Fix & add to CSS nodes documentation
* The `.background` class gets put on `popover`, not `content`
* Use backticks to style node and class names with monospace
* Link to GtkPopoverMenu
* Add to PopoverMenu a bit outlining how items and sections look in CSS.
Sergey Bugaev [Tue, 15 Aug 2023 08:28:43 +0000 (11:28 +0300)]
rendernode, snapshot: Slightly expand color matrix docs
Based on reverse engineering the color node and contrary to my
expectations, the matrix/offset is expressed in, and applied to,
unpremultiplied colors. The colors are being explicitly
unpremultiplied, transformed according to the matrix/offset, and
premultiplied back (see color_matrix.glsl). The matrix is getting
transposed.
Also, copy the same blurb to the corresponding GtkSnapshot function.
Sergey Bugaev [Tue, 15 Aug 2023 08:03:25 +0000 (11:03 +0300)]
snapshot: Fix merging color matrix nodes
The code was appliying the matrices in the wrong order: we have to apply
the inner node's matrix first, and the outer one second. Due to the
matrices being implicitly transposed, the matrix multiplication was done
in the right order, yet the wrong matrix was being mutliplied by the
wrong offset vector.
To make the code a little easier to follow, create explicit variables
for the resulting matrix and offset (instead of reusing matrix2 and
offset2), and fix & expand the comment to document how matrix
transposition factors into this.
Philip Chimento [Wed, 16 Aug 2023 05:30:27 +0000 (22:30 -0700)]
introspection: Remove 'caller-allocates' from POD types
The (out caller-allocates) and (out callee-allocates) annotations are
meant for structured or pointer types. Plain old data types are just
regular out parameters and don't need the annotation about who allocates
them.
Daniel Boles [Mon, 14 Aug 2023 09:48:26 +0000 (10:48 +0100)]
Inspector: Fix ! flash on select widget @ obj tree
Widgets are flashed by the window when it receives Tree::object-selected
- but we were emitting said signal from select_object(), i.e. if we were
made to select by an external caller. We should also emit it if the user
interactively selects an item, so the window receives+flashes the widget
Matthias Clasen [Sun, 13 Aug 2023 13:31:42 +0000 (09:31 -0400)]
text: Track user changes better
Make all the action signal handlers call
begin/end_change(), so we can rely on
change_count being >0 to check later if
an action is user-initiated or programmatic.
Qiu Wenbo [Fri, 11 Aug 2023 07:58:06 +0000 (15:58 +0800)]
macos: use NSPopUpButton for filter selection in native filechooser
On macOS 14, NSComboBox can't popup the dropdown list of filters. That
makes native filechooser on macOS completed broken. And NSComboBox is
more complex since it is a widget focused on edit capability.
NSPopUpButton is more suitable for plain selectable dropdown list.
Daniel Boles [Wed, 9 Aug 2023 14:34:50 +0000 (15:34 +0100)]
docs: Add/fix some links; avoid pluralisation
Appending `s` breaks the [type@NS.Object] notation, so fix that in
ListHeader. Add links to ListItem and Overlay, and avoid appending `s`
after `backtick`s just for consistency with the [type@NS.Object] issue.
Simon McVittie [Thu, 24 Aug 2023 10:48:36 +0000 (11:48 +0100)]
d/rules: Completely ignore border-one-rounded gsk test on mips*
The actual rendering in the "flipped" mode only differs from the
reference rendering by one pixel, but that one pixel has a completely
different value.
Simon McVittie [Tue, 22 Aug 2023 11:02:12 +0000 (12:02 +0100)]
d/rules: Ignore two reftests that fail on i386 only
In these tests, the reference rendering of "Hello world" is as one line,
but on i386 (possibly due to different rounding) it is word-wrapped onto
two lines.
I previously thought this was a regression between 4.10 and 4.12, but
it seems that instead, it was triggered by some other component being
upgraded, possibly fontconfig 2.14.2 or pango 1.51.0.
Simon McVittie [Tue, 22 Aug 2023 11:02:12 +0000 (12:02 +0100)]
d/rules: Ignore two reftests that fail on i386 only
In these tests, the reference rendering of "Hello world" is as one line,
but on i386 (possibly due to different rounding) it is word-wrapped onto
two lines.